package com.yunpeng.aidevice.biz.service;

import com.yunpeng.common.dto.Result;
import com.yunpeng.aidevice.common.dto.query.*;
import com.yunpeng.common.paging.PagingQueryDTO;

/**
 * IDeviceDataCenterBizService
 *
 * @author : Moore(hemw)
 * @date : 2020-04-28
 */
public interface IDeviceDataCenterBizService {

    /**
     * 设备单日详情数据
     *
     * @param deviceDayDetailQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryDeviceDayRecordDetail(DeviceDayDetailQueryDTO deviceDayDetailQueryDTO);

    /**
     * 统计单日设备通行数据
     *
     * @param deviceDayCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryDeviceDayCount(DeviceDayCountQueryDTO deviceDayCountQueryDTO);


    /**
     * 统计多日设备通行数据
     *
     * @param deviceDaysCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryDeviceDateRecordCount(DeviceDaysCountQueryDTO deviceDaysCountQueryDTO);

    /**
     * 统计组织多日设备通行数据
     *
     * @param deviceOrgDaysCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryOrgDeviceDayCount(DeviceOrgDaysCountQueryDTO deviceOrgDaysCountQueryDTO);

    /**
     * 统计用户设备通行数据
     *
     * @param userDeviceDaysCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryUserDeviceDayCountView(UserDeviceDaysCountQueryDTO userDeviceDaysCountQueryDTO);

    /**
     * 组织设备日统计数据
     *
     * @param orgDeviceDaysCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryOrgDeviceDayCountView(OrgDeviceDaysCountQueryDTO orgDeviceDaysCountQueryDTO);

    /**
     * 商户设备日统计数据
     *
     * @param merchantDeviceCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryMerchantDeviceDayCount(MerchantDeviceCountQueryDTO merchantDeviceCountQueryDTO);

    /**
     * 商户设备汇总
     *
     * @param merchantDeviceCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryMerchantDeviceDaysRecordCount(MerchantDeviceCountQueryDTO merchantDeviceCountQueryDTO);

    /**
     * 商户体温走势
     *
     * @param merchantDeviceCountQueryDTO
     * @return
     */
    Result<PagingQueryDTO> queryMerchantRecordCountView(MerchantDeviceCountQueryDTO merchantDeviceCountQueryDTO);
}
